package com.gouaixin.bee.beeframework2.model;

import android.content.Context;
import android.os.Handler;
import android.util.Log;

import com.ab.util.AbToastUtil;
import com.gouaixin.bee.beeframework2.tool.mLog;
import com.google.gson.Gson;
import com.gouaixin.bee.beeframework2.MyConfig;
import com.gouaixin.bee.beeframework2.bean.FANGKE;
import com.gouaixin.bee.beeframework2.bean.MSG;
import com.gouaixin.bee.beeframework2.dao.FangkeDao;
import com.gouaixin.bee.beeframework2.dao.MsgDao;
import com.gouaixin.bee.beeframework2.tool.PreferencesUtils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * Created by Administrator on 2015/4/8.
 */
//打招呼功能控制器
public class HelloModel {

    /***
     * 单个打招呼
     *
     * 1.添加关注对象
     * 2.配置缓存
     * 3.封装一个消息对象
     * 4.调用消息控制器发送消息
     * 5.开启自动回复机制
     */

    public static void  oneZhaohu(final Context context, final String jid,String jicon, final String cid,String jname){
        //判断是否可以打招呼
        boolean hasZhaohu=PreferencesUtils.getBoolean(context,"hasZhaohu",false);
        if(hasZhaohu==true){
            AbToastUtil.showToast(context,"您打招呼的次数超过限制");
            return;
        }




        //1.添加关注对象
        FANGKE bean = new FANGKE();
        bean.setJid(jid);
        bean.setJicon(jicon);
        FangkeDao.add(context, bean);

        //2.配置缓存

        PreferencesUtils.putBoolean(context, bean.getJid() + "isZhaohu", true);

        //3.封装一个消息对象
        String text ="我觉得"+jname+"很赞，打了个招呼";
        String time =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        MSG msg=new MSG();
        msg.setJid(jid);
        msg.setCid(cid);
        msg.setContent(text);
        msg.setTime(time);
        msg.setFlag(MSG.SEND);

        //4.调用消息控制器发送消息
        ChatModel.send(context, msg);

        PreferencesUtils.putBoolean(context, "hasZhaohu", true);

        //5.开启自动回复机制（1-10秒后启动线程）
//        int temp=1+new Random().nextInt(10);
        int temp=10;

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //调用消息控制器，接受消息
                ChatModel.setfindFaceLister(new ChatModel.findFaceLister() {
                    @Override
                    public void haveFindFace() {
                        //接受到消息
                        List<MSG> datas = MsgDao.queryWithId(context, jid, cid);
                        mLog.e("打招呼的接受消息：" + new Gson().toJson(datas));
                    }
                });
                ChatModel.receive(context, jid, cid);

                //6.追回机制（40秒后启动线程）
                mLog.e("追回机制:（40秒后启动线程）");
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        boolean isZhuihui=  PreferencesUtils.getBoolean(context,jid+"isZhuihui",true);//jid追回
                        mLog.e("追回机制：" + "isZhuihui:" + isZhuihui);

                        if(isZhuihui){
                            mLog.e("追回机制：用户没有回复消息");
                            //调用消息控制器，追回消息
                            ChatModel.setfindFaceLister(new ChatModel.findFaceLister() {
                                @Override
                                public void haveFindFace() {
                                    //接受到消息
                                    List<MSG> datas = MsgDao.queryWithId(context, jid, cid);
                                    mLog.e("追回消息：" + new Gson().toJson(datas));
                                }
                            });
                            ChatModel.receiveMore(context, jid, cid);

                        }else{
                            mLog.e("追回机制:用户回复了消息");
                        }
                    }
                }, MyConfig.Yuyanku_Zhuihui );
            }
        }, MyConfig.Yuyanku_Huifu);


//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//                LiaotianControl.receive(context,jid,cid);
//            }
//        }, 30*1000);

//        new Handler().post(new Runnable() {
//            @Override
//            public void run() {
//                LiaotianControl.receive(context, jid, cid);
//            }
//        });


    }
    //群打招呼
    public static void  allZhaohu(final Context context, final String[] jid, final String[] jicon , final String[] jname , final String cid){
        for(int i=0;i<jid.length;i++){
            Log.e("test","群打招呼:"+"正在遍历：i="+i);
            final int finalI = i;

            boolean isZhaohu=PreferencesUtils.getBoolean(context, jid[finalI]+ "isZhaohu", false);
            if(isZhaohu==false){
                new Handler().post(new Runnable() {
                    @Override
                    public void run() {
                        Log.e("test","群打招呼:"+finalI);
                        oneZhaohu(context, jid[finalI], jicon[finalI], cid, jname[finalI]);
                    }
                });
            }else{
                mLog.e(jid[finalI] + "已经打过招呼了");
            }

        }

    }


}
